<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Class Permission
 * @ORM\Table(name="admin_permission")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\AdminPermissionRepository")
 */
class AdminPermission
{
    /**
     * @var int
     *
     * @ORM\Column(name="id",type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="key",type="string",length=64,nullable=false)
     */
    private $key;

    /**
     * @var string
     *
     * @ORM\Column(name="name",type="string",length=64,nullable=false)
     */
    private $name;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="creationDate",type="datetime",nullable=false)
     */
    private $creationDate;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="modificationDate",type="datetime",nullable=false)
     */
    private $modificationDate;

    /**
     * @var string
     *
     * @ORM\Column(name="platform",type="string",length=20,nullable=false)
     */
    private $platform;

    /**
     * @var string
     *
     * @ORM\Column(name="level",type="string",length=64,nullable=false)
     */
    private $level;

    /**
     * @var string
     *
     * @ORM\Column(name="opLevelSelect",type="string",length=64,nullable=false)
     */
    private $opLevelSelect;

    /**
     * @var integer
     *
     * @ORM\Column(name="maxOpLevel",type="integer",nullable=false)
     */
    private $maxOpLevel;

    private $adminPermissionGroup;

    /**
     * Get id.
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set key.
     *
     * @param string $key
     *
     * @return AdminPermission
     */
    public function setKey($key)
    {
        $this->key = $key;

        return $this;
    }

    /**
     * Get key.
     *
     * @return string
     */
    public function getKey()
    {
        return $this->key;
    }

    /**
     * Set name.
     *
     * @param string $name
     *
     * @return AdminPermission
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * Get name.
     *
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @return string
     */
    public function getPlatform()
    {
        return $this->platform;
    }

    /**
     * @param string $platform
     */
    public function setPlatform($platform)
    {
        $this->platform = $platform;
    }

    /**
     * @return string
     */
    public function getLevel()
    {
        return $this->level;
    }

    /**
     * @param string $level
     */
    public function setLevel($level)
    {
        $this->level = $level;
    }

    /**
     * @return int
     */
    public function getMaxOpLevel()
    {
        return $this->maxOpLevel;
    }

    /**
     * @param int $maxOpLevel
     */
    public function setMaxOpLevel($maxOpLevel)
    {
        $this->maxOpLevel = $maxOpLevel;
    }

    /**
     * @return string
     */
    public function getOpLevelSelect()
    {
        return $this->opLevelSelect;
    }

    /**
     * @param string $opLevelSelect
     */
    public function setOpLevelSelect($opLevelSelect)
    {
        $this->opLevelSelect = $opLevelSelect;
    }

    /**
     * Set creationDate.
     *
     * @param \DateTime $creationDate
     *
     * @return AdminPermission
     */
    public function setCreationDate($creationDate)
    {
        $this->creationDate = $creationDate;

        return $this;
    }

    /**
     * Get creationDate.
     *
     * @return \DateTime
     */
    public function getCreationDate()
    {
        return $this->creationDate;
    }

    /**
     * Set modificationDate.
     *
     * @param \DateTime $modificationDate
     *
     * @return AdminPermission
     */
    public function setModificationDate($modificationDate)
    {
        $this->modificationDate = $modificationDate;

        return $this;
    }

    /**
     * Get modificationDate.
     *
     * @return \DateTime
     */
    public function getModificationDate()
    {
        return $this->modificationDate;
    }

    /**
     * @param $adminPermissionGroup
     */
    public function setAdminPermissionGroup($adminPermissionGroup)
    {
        $this->adminPermissionGroup = $adminPermissionGroup;
    }

    /**
     * @return AdminPermission
     */
    public function getAdminPermissionGroup()
    {
        return $this->adminPermissionGroup;
    }
}